#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
#define rep(i, a, b) for (int i = (a); i <= (b); i++)
#define per(i, a, b) for (int i = (a); i >= (b); i--)
#define endl '\n'
const int N = 2e5 + 5;

int n, m;
int a[N];

void solve() {
  string s;
  cin >> s;
  n = s.size();
  int ans = 0, cnt = 1;
  stack<int> st;
  st.push(-1);
  rep(i, 0, n - 1) {
    if (s[i] == '(')
      st.push(i);
    else {
      if (st.top() != -1 && s[st.top()] == '(') {
        st.pop();
        int j = st.top();
        int now = i - j;
        if (now > ans)
          ans = now, cnt = 1;
        else if (now == ans)
          cnt++;
      } else
        st.push(i);
    }
  }
  cout << ans << ' ' << cnt << endl;
  return;
}
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int t;
  t = 1;
  while (t--) solve();
  return 0;
}